package PEARWARE.automataEsclavo1.beans;

/**
 * Clase que representa un robot del sistema.
 * 
 * @author Ricardo Vilchez Garcia.
 * @version 10/06/2012
 */

public class Robot {

	private Sensor sensorMovimiento;
	private byte orientacion; // -1 reposo, 0 cinta ejes, 1 cinta eng, 2
								// estacion, 3 cinta transportadora
	private boolean cargado;

	/**
	 * Constructor publico de la clase
	 */
	public Robot() {
		sensorMovimiento = new Sensor();
		orientacion = -1;
		cargado = false;
	}

	/**
	 * Devuelve la orientacion actual del robot
	 * 
	 * @return byte La orientacion
	 */
	public byte getOrientacion() {
		return orientacion;
	}

	/**
	 * Establece la nueva orientacion del robot
	 * 
	 * @param orientacion
	 */
	public void setOrientacion(byte orientacion) {
		this.orientacion = orientacion;
	}

	/**
	 * Devuelve el sensor de movimiento del robot
	 * 
	 * @return Sensor
	 */
	public Sensor getSensorMovimiento() {
		return sensorMovimiento;
	}

	/**
	 * Devuelve si el robot esta cargado
	 * 
	 * @return cargado {@value} true: el robot esta cargado
	 */
	public boolean isCargado() {
		return cargado;
	}

	/**
	 * Establece si el robot esta cargado
	 * 
	 * @param cargado
	 *            true: El robot pasa a estar cargado; false: El robot pasa a
	 *            estar descargado
	 */
	public void setCargado(boolean cargado) {
		this.cargado = cargado;
	}

	/**
	 * Devuelve si el robot se esta moviendo
	 * 
	 * @return boolean cargado
	 */
	public boolean isMoving() {
		return sensorMovimiento.getActivo();
	}

	/**
	 * Activa el robot
	 */
	public void activar() {
		sensorMovimiento.setActivo(true);
	}

	/**
	 * Desactiva el robot
	 */
	public void parar() {
		sensorMovimiento.setActivo(false);
	}

}
